Elements of Statistical Learning

Reamining chapters:

6) Kernel Smoothing Methods
7) Model Assessment and Selection
8) Model Inference and Avereging
9) Additive Models, Trees and related methods
10) Boosting and Addtive Trees
11) Neural Networks
12) SVM and Flexible Discriminants
13) Prototype Methods and Nearest-Neighbors
14) Unsuprvised Learning
15) Random Forest
16) Ensemble Learning
17) Undirected Graphic Models
18) High-Dimensional Problems

6) Kernel Smoothing Methods

  • Metodi di fit locali (come KNN) che integrano funzioni (kernel) che associano un peso ad ogni X, tale per cui la f(X) diventa smooth (nel KNN e inutilmente discontinua).
In [10]:
from IPython.display import Image
Image('img/06_knn_vs_kernel_smoothing.png',width=500)
Out[10]:
In [8]:
Image('img/06_formula_kernel_smooth.png',width=500)
Out[8]:
  • Sono metodi molto onerosi computazionalmente, in quanto per ogni vettore p-dimensionale $X$(ovvero ogni riga del train set) va assegnato un peso (pari a 0 per i punti distinti dal punto $x_0$).

  • Pros

    • Sono comodi per fini di data viz: più comodo di una smoothed line che una linear regression o un polinomio, che ha il drawback che fa definito manualmente il grado.
  • Cons

    • Con p>3 diventa troppo oneroso computazionalmente
In [12]:
Image('img/06_smooth_dataviz.png',width=500)
Out[12]:

7) Model Assessment and Selection

model assessment:
come misurare la performance di un modello: con quali metriche e quali sample di dati.

model selection:
come scegliere gli (iper)parametri del modello (ovvero la model complexity)

Argomenti trattati:

  • Variance/Bias trade-off
  • Cross Validation
  • Bootstrap
  • How to measure model performance on train:
    • BIC / AIC
  • How to measure real performance (on validation):
    • K-Fold Cross Validation
In [16]:
Image('img/07_variance bias tradeoff.png',width=700)
Out[16]:
In [13]:
Image('img/07_bootstrap_vs_crossvalidation.png',width=500)
Out[13]:

8) Model Inference and Avereging

Ottimo capitolo riassuntivo di Statistical Inference (Ongaro + Migliorati classes in 20 30 pagine). Nei precedenti capitoli i metodi di stima esposti sono stati:

  • least square estimation
  • cross-entropy minimization

In questo capitolo invece vengono descritti:

  • Maximum Likelihood
  • Boostrap (B sampling w/ replacement. Uncertainty(S.E.) is computationally assessed.)
  • Bayesian Methods
    • EM / MCMC algo
  • Bagging (Bootstrap Aggregation: Estimates assessed by Averaging each of B predictions.
  • Stacking
  • Bumping (Bagging w/ only with those subsample of B having best performance.)
In [18]:
Image('img/08_ML_bootstrap.png',width=500)
Out[18]:

Modelli che non hanno una forma/struttura predefinita, ma determinata dai dati.

Modelli trattati:

  • Generalized Additive Models (GAM)
  • Classification and Regression Trees (CART)

GAM formula for continuos outcome Y:

In [25]:
Image('img/09_gam_1.png',width=600)
Out[25]:

A classic example is:
$Y_t = X_t + S_t + \epsilon$

In [22]:
Image('img/09_decomposition.png',width=400)
Out[22]:

CART too, are able to handle not linear (X,Y) relationship.

In [27]:
Image('img/09_xor_example.png',width=300)
Out[27]:
In [28]:
Image('img/09_trees_ex.png',width=400)
Out[28]:

10) Boosting and Additive Trees

Boosting:
Iterative Algo. that combines multiple weak learners to produce a powerful "commitee".

Il cap. espone:

  • AdaBoost
  • Gradient Boosting

Il secondo, è senza ombra di dubbio, il più usato algoritmo e SOTA per problemi di ML con dati tabular.

Main features:

  • Gestisce non linearità tra target e features, ed è possibile stimare l'effetto delle interazioni tra variabili (cit. Bellazzi).
  • Più di 50 iperparametri permettono di regolare la complessità del modello e prevenire l'overfitting con diverse tecniche di regularization: ovvero trovare il giusto Variance-Bias trade-off.
  • Diverse impelmentazioni in C (wrappate in Python, R, Java, ..) lo rendono particolarmente rapido nella fase di stima dei parametri. (XGBoost, LightGBM, CatBoost)
  • Non è del tutto una Black-Box:
    • Feature Importance
    • Shap Values
In [33]:
Image("img/10_kaggle_top_algo.jpg",width=500)
Out[33]:
In [32]:
Image('img/10_shap.png',width=500)
Out[32]:

IMHO: il testo di riferimento per capire Gradient Boosting è:

https://explained.ai/gradient-boosting/

In [31]:
Image('img/10_explained_gb.png',width=600)
Out[31]:

11) Neural Networks

**DEPRECATED CHAPTER**:

La prima pubblicazione di Elements of Statistical Learning risale al 2001! Come vengono modellate le reti neurali assume poco senso, (massimo 3 layer considera nel capitolo, in quanto troppo oneroso computazionalmente considerare reti più "deep").

Il testo di riferimento è: The Deep Learning Book - Yoshua Bengio, Ian Goodfellow


Detto ciò...

NNs sono la migliore famiglia di modelli da utilizzare nel il Machine Learning?

ML: si,ma per Unstructured Data:

  • Image + Video
  • Text/Sequence Per dati Tabular, Gradient Boosting rimane il SOTA.

NNs sono il SOTA per l'Artificial Intelligence (03/2020) ?

AI: Not yet, ma chi vivrà vedrà! Connettivisti(LeCun, Benjo,..) o i Simbolisti(Pearl,Marcus,...)?
https://youtu.be/EeqwFjqFvJA

(Deep) Neural Networks for Images

Imagenet Performance Evolution

In [40]:
Image('img/11_image_net_dataset.png',width=500)
Out[40]:
In [38]:
Image('img/11_imagenet.png',width=600)
Out[38]:

La prima edizione di Elements Of Statistical Learning risale al 2001

(Deep) Neural Network for Text/Sequence

In [41]:
Image('img/nlp_ner_evolution.png')
Out[41]:

12) SVM and Flexible Discriminants

Modelli descritti:

  • SVM with kernel
  • Flexible LDA

--

Concetti chiave:

  • SVM = Optimal Hyperplane Separator for linear boundaries
  • SVM w/ Kernel weights: Optimal Hyperplane Separator for Not Linear boundaries
  • Flexible LDA: Not linear version of LDA (used when you have multi-classification problem)

Drawback:

  • Applicando dei una funzione di kernel su X, si ottiene un nuovo spazio vettoriale non interpretabile.
In [42]:
Image('img/12_SVM_linear.png',width=500)
Out[42]:

Kernel Trick:

In [45]:
Image('img/12_kernel_trick.jpg',width=500)
Out[45]:

13. Prototypes and Nearest-Neighbors

**DEPRECATED CHAPTER**:

  • Tali approcci vengono applicati a dati Unstructured (immagini), ma con un'efficacia ed efficienza ormai scadenti se confrontate con le CNN.

I modelli trattati nel capitolo hanno in comune:

  • Black Box / con una relazione (y,X) non strutturata
  • Presentano grossi problemi con curse of dimensionality e computational load
  • Si applicano a problemi Supervised e Unsupervised

Approcci descritti:

  • K-Means Clustering
  • K-Nearest Neighbor
  • Adaptive K-Nearest Neighbor
In [48]:
Image('img/13_knn_mnist.png',width=500)
Out[48]:

MNIST dataset for number classification is Deep Learning "Hello World" :
MNIST with Keras for beginners - Accuracy = 0.99457

14. Unsupervised Learning

Approcci descritti:

  • Association Rules
  • Market Basket Analysis
  • Clustering:
    • K-Means
    • Gaussian Mixtures
    • Hierarchical Clustering
    • Spectral Clustering
  • Dimensionality Reduction:
    • PCA
    • SVD
    • Kernel Principal Components
    • Sparse Principal Components
    • Non-negative Matrix Factorization
    • Multidimensional Scaling

15. Random Forest

Main Features

  • Semplicità ed efficacia: costruisco N trees (uncrorelated) e faccio average di tutte le N predicion.
  • Semplicità nel tuning: (non serve Hyperparametrer Optimization)
  • Interpretabilità: Tramite la Feature Importance è possibile misurare il contributo delle features del modello.
  • Data la semplicità, si trovano già implementati in vari pacchetti [DEPRECATED]
In [50]:
Image('img/15_random_forest.png', width=500)
Out[50]:
In [ ]: